#pragma once

#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<assert.h>

//typedef int QDataType;
//
//typedef struct
//{
//    QDataType* q;
//    int front;
//    int rear;
//    int N;
//} MyCircularQueue;


typedef int CQDataType;

typedef struct
{
	CQDataType* data;
	int front;
	int rear;
	int capacity;
} MyCircularQueue;

MyCircularQueue* myCircularQueueCreate(int k);

bool myCircularQueueEnQueue(MyCircularQueue* obj, int value);

bool myCircularQueueDeQueue(MyCircularQueue* obj);


int myCircularQueueFront(MyCircularQueue* obj);


int myCircularQueueRear(MyCircularQueue* obj);


bool myCircularQueueIsEmpty(MyCircularQueue* obj);


bool myCircularQueueIsFull(MyCircularQueue* obj);


void myCircularQueueFree(MyCircularQueue* obj);